#ifndef POLLDOWNBTN_H
#define POLLDOWNBTN_H

#include <QWidget>
#include <QString>
#include <QPalette>
#include <QImage>
#include <QHBoxLayout>
#include <QLabel>
#include <QSize>
#include <QPalette>
#include "DebugPrint/myDebugPrint.h"


/*
 * optionItem中的下拉框控件
 */
class pollDownBtn : public QWidget
{
    Q_OBJECT
public:
    explicit pollDownBtn(const QString& text, const QString &hidePath, const QString &showPath, QWidget *parent = nullptr);     //需要传入两张不同情况下的Icon图片
    bool setBtnSize(const QSize &size);         // 设置下拉框按钮的大小
    bool setBtnIconSize(const QSize &size);     // 设置下拉框按钮的Icon大小
    bool setBtnStylesheet(const QString &qss);  // 设置该下拉框中的QSS布局
    /**
     @interpret  设置该下拉框调色板
     @param      palette: 需要添加的调色板
     @return     true-成功;false-失败
     */
    bool setPaletteBF(const QPalette& palette);
    //bool setTextWidgetName(QString WidgetName);
    /**
     @interpret    设置下拉框的显示内容
     @param        text: 下拉框需要显示的内容
     @return       true-成功;false-失败
     */
    bool setLabelText(const QString& text);
private:
    QString Text;                               // 下拉框的显示文字内容
    QString hideIconPath;                       // 下拉框的图片位置
    QString showIconPath;
    bool isVisible = true;                      // 标识中心控件是否显示
    QSize pollDownSize = QSize(300, 40);        // 设置下拉按钮的初始大小
    QSize pollDownIconSize = QSize(30, 30);     // 设置下拉按钮图标的初始大小

    QLabel *textWidget;                         // 用于显示文字的Widget
    QLabel *iconWidget;                         // 用于显示图片的Widget
    QWidget *spaceWidget;                       // 空格控件
    QHBoxLayout *HLayout;

private:
    void mousePressEvent(QMouseEvent *event) override;
signals:
    void middleWidgetIsVisible(bool isVisible);
};

#endif // POLLDOWNBTN_H
